Fix separately removing readable and writable side of stream when closing#139
Fix separately removing readable and writable side of stream when closing#139jsor merged 2 commits intoreactphp:masterfrom
Conversation
d59a203 to
1416302
Compare
c87b9fa to
af89737
Compare
|
After analyzing the stack traces in #136, we now have a very good understanding of what is happening:
I've added a number of tests as part of this PR to trigger this specific situation. However, while several tests now cover this specific situation, I've been unable to create a reliable, reproducible test where This means that we have a good understanding of what is failing and we can work around this issue. The updated code avoids this situation by using two separate stream watchers for the readable and writable side that can be removed independently instead of using a single watcher that needs to be updated. The updated code has 100% code coverage and while I'm currently unable to provide a test case for the initial issue, I believe to have fixed a relevant bug anyway. Accordingly, I've removed the WIP marker for now |
|
For the reference: This is still a relevant bug fix, but we've finally fixed the root cause via reactphp/socket#141 👍 The issue boils down to a bug where react/socket issued |
Filing this as WIP in order to create a reproducible test first and will fix this in a subsequent commit.Resolves / closes #136